# only works with -e target=
# read configs from host_vars
# check for host already existing
# if it exists
# kill it
# lvremove disk?
# if not
# exit with failure

# requires --extra-vars="target=hostspec"

- name: destroy and undefine vm
  hosts: "{{ target }}"
  user: root
  gather_facts: false

  tasks:
  - name: get vm list on the vmhost
    delegate_to: "{{ vmhost }}"
    virt: command=list_vms
    register: result

  - name: fail if the host is not already defined/existent
    local_action: fail msg="host does not exist on {{ vmhost }}"
    when: inventory_hostname not in result.list_vms

  - name: pause for 30s before doing it
    pause: seconds=30 prompt="Destroying (and lvremove for) vm now {{ target }}, abort if this is wrong"
    
  - name: destroy the vm
    action: virt name={{ inventory_hostname }} command=destroy
    delegate_to: "{{ vmhost }}"

  - name: undefine the vm
    action: virt name={{ inventory_hostname }} command=undefine
    delegate_to: "{{ vmhost }}"

  - name: destroy the lv
    command: /sbin/lvremove -f {{volgroup}}/{{inventory_hostname}}
    delegate_to: "{{ vmhost }}"
